Modern systems often require numerous computing resources. An organization may, for example, utilize numerous servers, data stores, and other resources in its operations. An organization using computing resources to provide a service, perhaps through a website, for example, may configure its systems with redundancy to decrease the likelihood of the service becoming unavailable due to a failure of one or more of the computing resources. Multiple servers may be redundantly configured such that, if one or more servers stop functioning, the remaining servers will be available. Generally, organizations may utilize multiple computing resources, whether redundantly or not, in their operations.
In many instances, computing resources of an organization share some sort of other resource. A single host may implement multiple virtual machines. A rack-mount may hold multiple hosts, multiple storage devices, and/or multiple other devices. A power source may provide power to multiple racks. Sharing resources often provides various advantages including increased simplicity, increased efficiency, and other advantages. Sharing resources, however, can also have disadvantages. If a resource becomes unavailable, those sharing the resource may be adversely affected. For example, if a host loses power, malfunctions, or otherwise stops working, virtual machines implemented by the host may collectively stop functioning as a result. In other words, when a resource is shared, the possibility of correlated failure becomes an issue.